
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            background-color: #dedede;
        }
        ul{
            background-color: #fff;
            border-radius: 5px;
            width: 1000px;
            margin: 20px auto;
        }
        li{
            height: 60px;
            display: flex;
            align-items: center;
            border-bottom: 1px solid #dedede;
            position: relative;
        }
        li img{
            width: 35px;
            height: 35px;
            display: block;
            margin: 0 10px;
        }
        li p{
            color: #333;
        }
        li p > span:first-child{
            color: blueviolet;
        }
        li p > span:last-child{
            color: #999;
            font-size: 14px;
        }
        li > span{
            display: block;
            width: 40px;
            height: 20px;
            line-height: 20px;
            text-align: center;
            border-radius: 5px;
            background-color: #999;
            margin: 0 10px;
        }
        li > span.top{
            background-color: aqua;
        }
        h3{
            font-weight: 400;
        }
        h3 > a{
            color: #333;
            text-decoration: none;
        }
        h3 > a:hover{
            text-decoration: underline;
        }
        time{
            position: absolute;
            right: 10px;
            top:20px
        }
    </style>
</head>
<body>
    <ul>
        <!-- <li>
            <img src="" alt="">
            <p><span></span>/<span></span></p>
            <span></span>
            <h3><a href=""></a></h3>
        </li> -->
    </ul>
    <!-- 
        渲染 :将数据渲染在页面上  将发送请求获取的数据渲染在页面上
        1.先写静态页面(自己先随意手写数据)
        2.获取数据
        3.根据数据重新创建标签 添加在页面上
     -->
    <script>
        // 1.分析数据在什么情况下获取 
        // (页面加载完成后直接获取数据)
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function(){
            // xhr.responseText属性用来获取请求的响应数据,
            // console.log(xhr.responseText);
            // 一定要在状态值等于4表示请求结束了之后再获取responseText的值
            if(xhr.readyState === 4){
                // console.log(xhr.responseText); //得到的json字符串
                // 将json字符串转换成json对象后 获取这个对象内的data属性的值
                var res = JSON.parse(xhr.responseText).data;
                // console.log(res); //想要的数据: [{},{},{},{}]

                var str = "";

                console.log(res[0]);

                // 根据数据的数组创建标签 数组的长度就是创建标签的数量
                for(var i = 0;i < res.length;i++){
                    // console.log(res[i]); //每一个对象
                    // 每次循环都创建一个列表 讲本次循环获取的res数组中的对象的数据拼接在这个列表标签中
                    // str += `<li>
                    //     <img src="${res[i].author.avatar_url}" alt="">
                    //     <p><span>${res[i].reply_count}</span> / <span>${res[i].visit_count}</span></p>
                    //      <span></span>
                    //     <h3><a href="">${res[i].title}</a></h3>
                    // </li>`;

                    
                    // 讲字符串模板的拼接分为3部分
                    str += `<li>
                        <img src="${res[i].author.avatar_url}" alt="">
                        <p><span>${res[i].reply_count}</span> / <span>${res[i].visit_count}</span></p>
                    `;
                    // 中间部分的内容需要进行数据判断处理
                    // str += `<span></span>`;
                    if(res[i].top){
                        str += `<span class="top">置顶</span>`;
                    }else if(res[i].good){
                        str += `<span class="top">精华</span>`;
                    }else if(res[i].tab == "share"){
                        str += `<span>分享</span>`;
                    }else{
                        str += `<span>问答</span>`;
                    }

                    str += `<h3><a href="">${res[i].title}</a></h3>
                    <time>${time(res[i].last_reply_at)}</time>
                    </li>`
                }

                var ul = document.querySelector("ul");
                ul.innerHTML = str;


            }
        }
        xhr.open("get","https://cnodejs.org/api/v1/topics")
        xhr.send();


        function time(lastTime){
            // 得到的时间
            var time1 = new Date().getTime(); //获取当前时间的时间戳
            var time2 = new Date(lastTime).getTime(); //获取参数传递的时间的时间戳
            var cha = time1 - time2; //得到时间戳的差
            var y = parseInt(cha / 1000 / 60 / 60 / 24 / 30 / 12);
            var m = parseInt(cha / 1000 / 60 / 60 / 24 / 30 % 12);
            var d = parseInt(cha / 1000 / 60 / 60 / 24 % 30);
            var h = parseInt(cha / 1000 / 60 / 60 % 24);
            var mi = parseInt(cha / 1000 / 60 % 60);
            if(y){
                return y + "年前"
            }else if(m){
                return m + "月前"
            }else if(d){
                return d + "天前"
            }else if(h){
                return h + "小时前"
            }else if(mi){
                return mi + "分钟前"
            }else{
                return "刚刚";
            }            
        }
        
    </script>
</body>
</html>